mac 编译安装php-mongo 扩展时报evp.h文件找不到的解决方案

我在编译mongo扩展的时候 遇到了这个问题:

In file included from /usr/local/mongo-php-driver-legacy/io_stream.c:34:
./contrib/php-ssl.h:33:10: fatal error: 'openssl/evp.h' file not found
#include <openssl/evp.h>

问题分析:就是 openssl/evp.h 这个文件找不到.

解决思路:找一个evp.h文件放过去.

在本地找一下看有没有这个文件:

find / -name evp.h

得到下面的结果:

/opt/vagrant/embedded/include/openssl/evp.h
/usr/local/openssl/include/openssl/evp.h
/usr/src/openssl/include/openssl/evp.h

于是拷贝一个过去:

cp -r /usr/local/openssl/include/openssl /usr/local/mongo-php-driver-legacy/contrib/

再执行 make

显示:

.......
Build complete. Don't forget to run 'make test'.

问题解决。

说明:

  • 如果你本地没有找到 evp.h,你需要把系统自带的opensssl删除(rm -rf /usr/bin/openssl), 然后重新装一个最新的openssl,然后将openssl/evp.h 拷贝一份过去


Betta
11 声望1 粉丝

zhouyewang